home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / dev / lang / Python152.lha / Python-1.5 / Install_Python < prev    next >
Text File  |  1999-04-30  |  14KB  |  390 lines

  1. ;------------------------------------------------------------------------
  2. ;
  3. ; Python Installation script for Python version 1.5
  4. ;
  5. ; Copyright © Irmen de Jong.
  6. ; V2.61 (30-apr-99)
  7. ;
  8. ;   2.61: Update_Previous script disabled for python 1.5.2
  9. ;
  10.  
  11. (set OSVersion          (/ (getversion) 65536))
  12.  
  13. (set cpu (database "cpu"))
  14.  
  15. (set @app-name "Python 1.5")
  16.  
  17. (set #source-dir (pathonly @icon) )
  18.  
  19. ;
  20. ; ENGLISH STRINGS
  21. ;
  22. (set #osmsg "ARGH! You have an obsolete Kickstart version!\n\nPython only works on Kickstart 2.04 or higher. Upgrade to 3.1!")
  23. (set #nopretendmsg "Can only install for real.")
  24. (set #updatemsg "This will install a fresh copy of Python 1.5.2.\nIf you already have installed the previous version, you might consider running the Update_Previous script instead.\nIf so, abort this installation now.")
  25. (set #welcomemsg "Installation of Python 1.5.2\n\nA new directory (with icon) will be created, in which the program is installed.")
  26. (set #oldversionmsg "\nDo you have a previous installed version, and if so, do you want to delete that (fully)?\nWARNING: If you select 'yes', the full contents of the directory of the old version will be deleted!\n\n\n(If you have a previous version installed, and you don't delete it, you must install this new version to a new directory)")
  27. (set #oldversionhelp "Yes: delete all files from old version. You can then install this new version in the place of the old one, otherwise, you'll have to install this version in a new directory.\n\nIf you have any files in the directory of the old version that you want to keep, SELECT 'NO'!")
  28. (set #whereisold "Where is your previous release installed?")
  29. (set #deleteoldmsg "\nWill now delete old version. Last chance to keep old data!")
  30. (set #willdeletemsg "\nWill now delete drawer\n\n%s\n\ncompletely.")
  31. (set #willdeletehelp "Last chance to keep old files: click 'Abort'!")
  32. (set #deleteworkmsg "Deleting %s...")
  33. (set #oldversion "old version")
  34. (set #deleteinstall "Do you want to delete the installation directory?\n\n(it is no longer needed)")
  35. (set #installationfiles "installation files")
  36. (set #whereprompt "Were must Python be installed? Most of the files don't have to be copied, if you accept the offered default.")
  37. (set #wherehelp "  Here you can specify the location where to install Python.\n  Installation can be made on-place. This is recommended if you have already unarchived the Python archive to its final location. In this case most of the files are left where they are. Only necessary files are moved to different positions.\n  If you choose another location, a new subdirectory will be created (with icon) in which the program is installed.")
  38. (set #currentmsg "\nInstalling Python to\n\n%s\n\n(the current place)")
  39. (set #existingerr "Can't install into existing directory!")
  40. (set #oldstillexistserr "Couldn't fully remove old drawer! (is it still in use?)")
  41. (set #newmsg "\nInstalling Python to\n\n%s\n\n(a new directory)" )
  42. (set #whichprompt "Which version of the program should be installed?")
  43. (set #whichhelp "Choose the version which matches your CPU/FPU configuration best.\nRead the README file for info on how to obtain other versions.\n\n")
  44. (set #startupprompt "The following commands will be added to your \"S:User-Startup\" file (You'll need them to run Python):\n\nASSIGN Python: %s\nPATH Python: ADD\n")
  45. (set #readmemsg (cat "Please read shown information...\n\n\n(It is also wise to read the README file)"))
  46. (set #ver_68020_IEEE "Python  68020, no FPU")
  47. (set #ver_68030_882  "Python  68030, 68882 FPU")
  48. (set #sorryno020 "Sorry, there is no longer a 020/IEEE version included. You should really upgrade to at least a 68030 with a FPU...")
  49. (set #abort "Abort")
  50. (set #proceed "Proceed")
  51. (set #endmsg "\nPython 1.5.2 is now installed!\n\nIf you're using NewIcons, take a look in the Icons directory. NewIcon versions of the icons are available there.")
  52. ;
  53. ; NEDERLANDSE STRINGS
  54. ;
  55. (if (= @language "nederlands")
  56. (
  57. (set #osmsg "ARGH! U heeft een verouderde Kickstart versie!\n\nPython werkt alleen op Kickstart 2.04 of nieuwer. Upgrade naar 3.1!")
  58. (set #nopretendmsg "Kan alleen echte installatie uitvoeren.")
  59. (set #updatemsg "Er zal een nieuwe installatie van Python 1.5.2 plaatsvinden.\nAls u al een vorige versie heeft geïnstalleerd, is het aan te raden om het Update_Previous script te gebruiken inplaats van dit installatieprogramma.\nAls u dat wilt, moet u nu deze installatie afbreken.")
  60. (set #welcomemsg "Installatie van Python 1.5.2\n\nEr wordt een nieuwe lade (met ikoon) aangemaakt, waarin het programma wordt geïnstalleerd.")
  61. (set #oldversionmsg "\nHeeft u een vorige versie geïnstalleerd, en zo ja, wilt u deze dan (in zijn geheel) verwijderen?\nWAARSCHUWING: als u 'ja' kiest, wordt de complete inhoud van de lade van de oude versie gewist!\n\n\n(Als u een vorige versie geïnstalleerd heeft, en deze niet verwijdert, moet u de nieuwe versie in een nieuwe lade installeren)")
  62. (set #oldversionhelp "Ja: verwijder alle files van de oude versie. U kunt dan deze nieuwe versie op de plaats van de oude installeren, anders moet u dat in een nieuwe lade doen.\n\nAls u files heeft in de lade van de oude versie die u wilt bewaren, KIES DAN 'NEE'!")
  63. (set #whereisold "Waar is uw vorige versie geïnstalleerd?")
  64. (set #deleteoldmsg "\nOude versie wordt nu verwijderd. Laatste kans om oude files te bewaren!")
  65. (set #willdeletemsg "\nDe lade\n\n%s\n\nwordt in zijn geheel verwijderd.")
  66. (set #willdeletehelp "Laatste kans om oude files te bewaren: klik 'Stop'!")
  67. (set #deleteworkmsg "%s wordt verwijderd...")
  68. (set #oldversion "Oude versie")
  69. (set #deleteinstall "Wilt u de installatie-lade verwijderen?\n\n(die is niet langer nodig)")
  70. (set #installationfiles "Installatie files")
  71. (set #whereprompt "Waar moet Python geïnstalleerd worden? De meeste files hoeven niet gekopiëerd te worden, als u de standaard keuze accepteert.")
  72. (set #wherehelp "  Hier kunt u de lokatie van Python opgeven.\n  De installatie kan ter plekke plaatsvinden. Dit is aanbevolen als u de Python archive al in de juiste plaats heeft uitgepakt. In dit geval worden de meeste files met rust gelaten. Slechts een paar files worden naar hun benodigde lokatie gekopiëerd.\n  Als u een andere lokatie kiest, wordt een nieuwe lade (met ikoon) aangemaakt, waarin Python wordt geïnstalleerd.")
  73. (set #currentmsg "\nInstalleren van Python in\n\n%s\n\n(de huidige plaats)")
  74. (set #existingerr "Kan niet in bestaande lade installeren!")
  75. (set #oldstillexistserr "Kan oude lade niet volledig verwijderen! (wordt hij nog gebruikt?)")
  76. (set #newmsg "\nPython wordt geïnstalleerd in\n\n%s\n\n(een nieuwe lade)" )
  77. (set #whichprompt "Welke versie van het programma moet geïnstalleerd worden?")
  78. (set #whichhelp "Kies de versie die het beste bij uw CPU/FPU configuratie past.\nLees het README bestand voor informatie over hoe andere versies te verkrijgen.\n\n")
  79. (set #startupprompt "De volgende commando's zullen aan uw \"S:User-Startup\" bestand worden toegevoegd (ze zijn nodig om Python te kunnen gebruiken):\n\nASSIGN Python: %s\nPATH Python: ADD\n")
  80. (set #readmemsg (cat "Leest u AUB de getoonde informatie...\n\n\n(Het is ook verstandig om de README file te lezen)"))
  81. (set #ver_68020_IEEE "Python  68020, geen FPU")
  82. (set #ver_68030_882  "Python  68030, 68882 FPU")
  83. (set #sorryno020 "Sorry, er is niet langer een 020/IEEE versie meegeleverd. U moet echt eens upgraden naar tenminste een 68030 en FPU...")
  84. (set #abort "Stop")
  85. (set #proceed "Ga verder")
  86. (set #endmsg "\nPython 1.5.2 is nu geïnstalleerd!\n\nAls u NewIcons gebruikt, kijk dan eens in de Icons directory. Hier zijn NewIcon versies van de icons beschikbaar.")
  87. )
  88. )
  89.  
  90. ;------------------------------------------------------------------------
  91. ;;;;
  92. ;;;; Subroutines follow below:
  93. ;;;;
  94.  
  95. ;;;;
  96. ;;;; Check if OS version is good enough.
  97. ;;;;
  98. (procedure checkKick
  99.  (if (< OSVersion 37)
  100.     (message #osmsg)
  101.  )
  102. )
  103.  
  104. ;;;;
  105. ;;;; Find out which pager to use ($PAGER or sys:utilities/multiview)
  106. ;;;;
  107. (procedure installPager
  108.  (set pager-cmd
  109.    (if (exists "ENV:PAGER" (noreq)) (getenv "PAGER") ("SYS:Utilities/Multiview")
  110.    )
  111.  )
  112. )
  113.  
  114. ;;;;
  115. ;;;; Ask user if she wants to delete an old version.
  116. ;;;;
  117. (procedure removeOldversion
  118. (if (askbool 
  119.     (prompt #oldversionmsg)
  120.     (help #oldversionhelp)
  121.     )
  122.     (
  123.         (set oldreleasepath "Python:")
  124.         (set oldreleasepath (expandpath
  125.             (askdir
  126.                 (prompt #whereisold)
  127.                 (help "Select directory")
  128.                 (default "Python:")
  129.             ) )
  130.         )    
  131.  
  132.         (if (askbool
  133.             (prompt (#willdeletemsg oldreleasepath))
  134.             (help #willdeletehelp)
  135.             (choices #proceed #abort)
  136.             )
  137.             (
  138.                 (working (#deleteworkmsg #oldversion))
  139.                 (run "assign Python: remove")
  140.                 (run ("delete >NIL: %s %s.info FORCE ALL" oldreleasepath oldreleasepath))
  141.                 ;;; Check if indeed all stuff went to the bitbasket
  142.                     (if (exists oldreleasepath) (abort #oldstillexistserr))
  143.             )
  144.             (abort)
  145.         )
  146.     )
  147. )
  148. )
  149.  
  150. ;;;;
  151. ;;;; Select destination. Create drawer if necessary.
  152. ;;;;
  153. (procedure selectDestination
  154. (set destination
  155.     (askdir
  156.         (prompt #whereprompt)
  157.         (help #wherehelp)
  158.         (newpath)
  159.         (default #source-dir)
  160.     )
  161. )    
  162.  
  163. (set @default-dest destination)
  164.  
  165. (if (= #source-dir destination)
  166.     (
  167.         (set #otherdir FALSE)
  168.         (message (#currentmsg destination))
  169.     )
  170.     (
  171.         (set #otherdir TRUE)
  172.         (set tempdest destination)
  173.         (set destination (tackon destination "Python-1.5"))
  174.  
  175.         (if (exists destination) (abort #existingerr))
  176.  
  177.         (message (#newmsg destination))
  178.         (makedir destination)
  179.         (copyfiles
  180.         (source (tackon #source-dir "Icons/Drawer.info"))
  181.         (dest tempdest)
  182.         (newname "Python-1.5.info")
  183.         )
  184.     )
  185. )
  186. )
  187.  
  188. ;;;;
  189. ;;;; Choose the desired binary version.
  190. ;;;;
  191. (procedure chooseBinary
  192. (set prog 1)
  193. (if (= cpu "68000") (set prog 0))
  194. (if (= cpu "68010") (set prog 0))
  195. (if (= cpu "68020") (set prog 0))
  196. (if (= cpu "68030") (set prog 1))
  197. (if (= cpu "68040") (set prog 1))
  198.  
  199. ;;;; SORRY GUYS, ONLY A 030/882 VERSION NOW
  200. (if (= prog 0) (abort (#sorryno020)))
  201. (set which_version 1)
  202. ;;
  203. ;;
  204. ;;; Ask version of program
  205. ;;(set which_version
  206. ;;        (askchoice
  207. ;;                (prompt #whichprompt)
  208. ;;                (help #whichhelp @askoptions-help)
  209. ;;                (choices
  210. ;;            #ver_68020_IEEE
  211. ;;            #ver_68030_882
  212. ;;               )
  213. ;;                (default prog)
  214. ;;        )
  215. ;;)
  216. )
  217.  
  218. ;;;;
  219. ;;;; Install the correct Python binary.
  220. ;;;;
  221. (procedure installprog
  222.  (if #otherdir
  223.    (
  224.     (if (= which_version 0)             ; 68020
  225.       (
  226. ;;;; SORRY GUYS NO MORE 020/IEEE VERSION
  227.     abort (#sorryno020)
  228. ;;;;        (copyfiles
  229. ;;;;        (source (tackon #source-dir "Python_020_IEEE"))
  230. ;;;;        (dest destination)
  231. ;;;;        (newname "Python")
  232. ;;;;        )
  233.       )
  234.     )
  235.     (if (= which_version 1)             ; 68030+FPU
  236.       (
  237.         (copyfiles
  238.         (source (tackon #source-dir "Python_030"))
  239.         (dest destination)
  240.         (newname "Python")
  241.         )
  242.       )
  243.     )
  244.     (run ("delete >NIL: FORCE %s/python_#?" destination))
  245.    )
  246.    (
  247.     (if (= which_version 0)             ; 68020
  248. ;;;; SORRY GUYS NO MORE 020/IEEE VERSION
  249.     (abort (#sorryno020))
  250. ;;;;        (rename (tackon #source-dir "Python_020_IEEE") (tackon #source-dir "Python") )
  251.     )
  252.     (if (= which_version 1)             ; 68030+FPU
  253.         (rename (tackon #source-dir "Python_030") (tackon #source-dir "Python") )
  254.     )
  255.    )
  256.  )
  257. )
  258.  
  259.  
  260. ;;;;
  261. ;;;; Ask user if she wants to delete the installation drawer.
  262. ;;;;
  263. ;;;; BUG: hmm this doesnt work because installer keeps a lock in that drawer.
  264. ;;;;
  265. ;(procedure removeInstallation
  266. ;(if (askbool (prompt #deleteinstall) (help ""))
  267. ;    (
  268. ;    (working (#deleteworkmsg #installationfiles))
  269. ;    (message ("delete >NIL: %s %s.info FORCE ALL" #source-dir #source-dir))
  270. ;    (run ("delete >NIL: %s %s.info FORCE ALL" #source-dir #source-dir))
  271. ;    )
  272. ;)
  273. ;)
  274.  
  275.  
  276. ;------------------------------------------------------------------------
  277. ;;;;
  278. ;;;; Main installation sequence starts here
  279. ;;;;
  280.  
  281. (if (= @pretend 1)
  282.     (abort #nopretendmsg)
  283. )
  284.  
  285. ;;;; DISABLED FOR 1.5.2 installation:
  286. ;;;; (message #updatemsg)
  287.  
  288. (message #welcomemsg)
  289.  
  290. (checkKick)
  291.  
  292. (installPager)
  293.  
  294. (complete 0)
  295.  
  296. (removeOldversion)
  297.  
  298. (complete 10)
  299.  
  300. (selectDestination)
  301.  
  302. (complete 25)
  303.  
  304. (chooseBinary)
  305.  
  306. ;;;;
  307. ;;;; Now, install the files.
  308. ;;;;
  309. (if #otherdir
  310.   (
  311.     (installprog)
  312.     (complete 50)
  313.     (copyfiles
  314.     (source #source-dir)
  315.     (dest destination)
  316.     (pattern "(Lib|Demo|Docs|Icons|Modules)")
  317.     (infos)
  318.     )
  319.     (complete 90)
  320.     (copyfiles
  321.     (source (tackon #source-dir "DISCL_and_COPYRIGHT"))
  322.     (dest destination) (infos))
  323.     (copyfiles
  324.     (source (tackon #source-dir "README"))
  325.     (dest destination) (infos))
  326.     (copyfiles
  327.     (source (tackon #source-dir "CHANGES"))
  328.     (dest destination) (infos))
  329.     (copyfiles
  330.     (source (tackon #source-dir "RunTest.py"))
  331.     (dest destination) (infos))
  332.     (copyfiles
  333.     (source (tackon #source-dir "Icons/def_py.info"))
  334.     (dest destination)
  335.     (newname "RunTest.py.info")
  336.     )
  337.  
  338.     (copyfiles
  339.     (source (tackon #source-dir "Icons/Python.info"))
  340.     (dest destination)
  341.     (newname "Python.info")
  342.     )
  343.  
  344.     ;;;; Because we installed to another drawer, the installation files can be removed.
  345.     ;(removeInstallation)    ; Doesn't work: installer still locks drawer
  346.  
  347.   )
  348.   (
  349.     (complete 50)
  350.     (installprog)
  351.     (complete 75)
  352.     (copyfiles
  353.     (source (tackon #source-dir "Icons/Python.info"))
  354.     (dest destination)
  355.     (newname "Python.info")
  356.     )
  357.     (copyfiles
  358.     (source (tackon #source-dir "Icons/def_py.info"))
  359.     (dest destination)
  360.     (newname "RunTest.py.info")
  361.     )
  362.     (run ("delete >NIL: FORCE %s/(python_#?|install#?)" destination))
  363.     (run ("delete >NIL: FORCE %s/Update_Previous#?" destination))
  364.   )
  365. )
  366.  
  367. (complete 95)
  368.  
  369. (startup @app-name
  370.         (prompt (#startupprompt destination))
  371.         (help @startup-help)
  372.         (command ("ASSIGN Python: %s\n" destination))
  373.         (command "PATH Python: ADD\n")
  374. )
  375.  
  376. (run ("ASSIGN >NIL: Python: %s" destination))
  377.  
  378. (if (exists "sys:utilities/multiview")
  379.     (run ("run sys:utilities/multiview %s/%s" destination "DISCL_and_COPYRIGHT") (safe))
  380.     (run (cat "run " pager-cmd) ("%s/%s" destination "DISCL_and_COPYRIGHT") (safe))
  381. )
  382.  
  383. (message #readmemsg)
  384. (message #endmsg)
  385.  
  386. (run "delete >NIL: ram:more FORCE")
  387.  
  388. (complete 100) ; 100% done!
  389.  
  390.